当前位置:  开发笔记 > 编程语言 > 正文

`l`长度修饰符对后续的a,A,e,E,f,F,g或G转换说明符没有影响

如何解决《`l`长度修饰符对后续的a,A,e,E,f,F,g或G转换说明符没有影响》经验,为你挑选了1个好方法。

我想了解以下部分:

l (ell)

用于指定后续的d,i,o,u,x,或X转换说明适用于一个longunsigned long参数; 以下n转换说明符适用于指向long 参数的指针; 以下c转换说明符适用于wint_t 参数; 以下s转换说明符适用于指向wchar_t参数的指针; 或具有在下文中没有任何影响a,A,e,E,f, F,g,或G转换说明.

我还可以看到这与cppreference一致:fprintf在哪里"%f""%lf"等同于printf()家庭.

那么,这个答案错误?或是否C99清楚,现在"%f"float,虽然"%lf"double针对printf()家庭功能?



1> dasblinkenli..:

文档是正确的:printf看到float和之间没有区别double.

printf族的函数参数通过可变长度机制获得.在可变长度参数列表的可变长度部分中,"默认参数促销"适用:类型charshort int被提升为int,并float被提升为double.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有